package com.lhq.tag_tales.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lhq.tag_tales.model.domain.Team;
import com.lhq.tag_tales.model.domain.dto.TeamQuery;
import com.lhq.tag_tales.model.domain.request.TeamAddRequest;
import com.lhq.tag_tales.model.domain.request.TeamJoinRequest;
import com.lhq.tag_tales.model.domain.request.TeamUpdateRequest;
import com.lhq.tag_tales.model.domain.vo.TeamUserVO;

import java.util.List;

/**
* @author L_curiosity
* @description 针对表【team(队伍表)】的数据库操作Service
* @createDate 2024-11-15 20:54:55
*/
public interface TeamService extends IService<Team> {

    Long addTeam(TeamAddRequest team);

    void deleteTeamById(Long id);

    void updateTeam(TeamUpdateRequest team);

    Page<TeamUserVO> searchTeamsPage(TeamQuery teamQuery);

    List<TeamUserVO> listTeams(TeamQuery teamQuery);

    void joinTeam(TeamJoinRequest teamJoinRequest);

    void quitTeam(Long teamId);

    void disbandTeam(Long teamId);
}
